<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Error Handling : CodeIgniter User Guide</title>

<style type='text/css' media='all'>@import url('../userguide.css');</style>
<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' />

<script type="text/javascript" src="../nav/nav.js"></script>
<script type="text/javascript" src="../nav/prototype.lite.js"></script>
<script type="text/javascript" src="../nav/moo.fx.js"></script>
<script type="text/javascript" src="../nav/user_guide_menu.js"></script>

<meta http-equiv='expires' content='-1' />
<meta http-equiv= 'pragma' content='no-cache' />
<meta name='robots' content='all' />
<meta name='author' content='ExpressionEngine Dev Team' />
<meta name='description' content='CodeIgniter User Guide' />

</head>
<body>

<!-- START NAVIGATION -->
<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div>
<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div>
<div id="masthead">
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
<tr>
<td><h1>CodeIgniter User Guide Version 2.0.3</h1></td>
<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td>
</tr>
</table>
</div>
<!-- END NAVIGATION -->


<!-- START BREADCRUMB -->
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
<tr>
<td id="breadcrumb">
<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp;
<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp;
Error Handling
</td>
<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="codeigniter.com/user_guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td>
</tr>
</table>
<!-- END BREADCRUMB -->

<br clear="all" />


<!-- START CONTENT -->
<div id="content">

<h1>에러 핸들링Error Handling</h1>

<p>CodeIgniter 는 아래 함수들을 이용하여 여러분 프로그램에서 에러에 대한 리포트를 생성하도록 지원합니다.게다가,에러 로깅(error logging )클래스도 제공합니다. 에러로깅 클래스를 이용하면 에러를 텍스트 파일로 저장할 수 있습니다. </p>

<p class="important"><strong>Note:</strong> CodeIgniter의 기본설정은 모든 PHP 에러를 표시하는 것입니다.  그런데 님하의 프로그램 개발이 완료되었을때 이런 기본 설정을 변경하고 싶을 수 있습니다.  메인 index.php 의 맨윗쪽에 <dfn>error_reporting() </dfn>
함수가 있습니다. error reporting 을 disable 하는것이 에러 로그파일을 기록하는것 까지 disable 하지는 않습니다.</p>

<p>대부분 CodeIgniter의 시스템과는달리 ,에러 함수는 절차적 인터페이스를 가지며 프로그램 전반에 걸쳐 글로벌 하게 사용할 수 있다.</p>
<p>  이런 접근방법은 클래스나 함수의 스코프에 상관없이 에러 메시지를 생성하게 해줍니다.</p>
<p>다음 함수는 에러를 생성하도록 해줍니다.:</p>

<h2>show_error('<var>message</var>')</h2>
<p>이 함수는 아래 템플릿을 이용하여 에러메세지를 표시합니다.:</p>
<p><dfn>application/errors/</dfn><kbd>error_general.php</kbd></p>

<h2>show_404('<var>page</var>' [, '<var>log_error</var>'])</h2>
<p>이 함수는 아래 템플릿을 이용하여 404 에러메세지를 표시합니다.</p>
<p><dfn>application/errors/</dfn><kbd>error_404.php</kbd></p>

<p>이 함수는 발견되지않은(not found) 페이지의 경로를 문자열로 전달받을것을 가정합니다.</p>
<p>주의 : CodeIgniter 는 컨트롤러를 발견할 수 없으면 자동적으로 404 에러메세지를 표시합니다. </p>
  <p>모든 show_404() 호출은 로그에 기록됩니다. 두번째 파라미터를 FALSE 로 하면 로그에 기록하지 않습니다.</p>

<h2>log_message('<var>level</var>', '<samp>message</samp>')</h2>

<p>이함수는 로그파일에 에러메세지를 쓸수 있도록 합니다. 먼저 3개의 에러타입(debug, error, info)중 하나의 타입을 첫번째 파라미터로 전달해야합니다.메세지는 두번째 파라미터로 전달합니다.</p>
<p>예제:</p>
<code>
if ($some_var == "")<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;log_message('error', 'Some variable did not contain a value.');<br />
}<br />
else<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;log_message('debug', 'Some variable was correctly set');<br />
}<br />
<br />
log_message('info', 'The purpose of some variable is to provide some value.');<br />
</code>

<p>3가지 메세지 타입이 있습니다:</p>

<ol>
<li>Error 메세지 : PHP 에러나 사용자 에러등 진짜 에러 메시지.</li>
<li>Debug 메세지:  디버그를 도와주는 메세지.예를 들어, 클래스가 초기화되면 님하는 debugging 정보로 파일에 기록할 수 있습니다.</li>
<li>Informational 메세지 :  이 메시지는 가장 우선순위가 낮은 메세지 . 단순히 어떤 프로세스에 대한 메세지를 제공합니다.  CodeIgniter 는 Info 메세지를 작성하지않습니다만, 님하가 원하시는 메세지를 스스로 기록하실수있습니다. </li>
</ol>


<p class="important"><strong>Note:</strong> 로그파일을 기록하려면 "logs" 폴더에 쓰기권한이 있어야합니다.또한 , <dfn>application/config/config.php</dfn>에서 쓰레스홀드("threshold)를 먼저 세팅해야합니다.예를 들어 , 에러메세지만 기록하고 싶을수도 있겠죠 ?. 제로로 세팅하시면 로깅은 비활성화(disabled) 될것입니다.</p>



</div>
<!-- END CONTENT -->


<div id="footer">
<p>
Previous Topic:&nbsp;&nbsp;<a href="routing.html">URI Routing</a>
&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
Next Topic:&nbsp;&nbsp;<a href="caching.html">Page Caching</a>
</p>
<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2011 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">Ellislab, Inc.</a></p>
</div>

</body>
</html>